﻿using Creventive.Wpf.ShellFactory.Workspace.Primitives;

namespace Creventive.Wpf.ShellFactory.Workspace
{
    /// <summary>
    /// Defines the basic methods of a workspace.
    /// </summary>
    public interface IWorkspace
    {
        /// <summary>
        /// Closes all views within this workspace as defined by the given flags.
        /// </summary>
        /// <param name="flags">The flags.</param>
        /// <returns></returns>
        bool CloseAll(ApplicationViewClosingMode flags);

        /// <summary>
        /// Activates the specified application view.
        /// </summary>
        /// <param name="applicationView">The application view.</param>
        /// <returns></returns>
        bool Activate(ApplicationView applicationView);

        /// <summary>
        /// Determines whether this workspace contains the specified view.
        /// </summary>
        /// <param name="view">The view.</param>
        /// <returns>
        /// 	<c>true</c> if this workspace contains the specified view; otherwise, <c>false</c>.
        /// </returns>
        bool ContainsView(ApplicationView view);
    }
}